#include <iostream>
#include <list>
#include <unordered_map>
#include <utility>
#include<string>
using std::cout;
using std::endl;
using std::list;
using std::unordered_map;
using std::pair;
using std::make_pair;
using std::string;

class MemLRU
{
public:
    MemLRU(int capa);
    void put(int key, string value);
    string get(int key);
    void print() const;
private:
    int _capacity;//容量，也就是list中存放元素的最大个数
    list<pair<int, string>> _nodes;//存放key-value的容器
    //存放key以及key在list中的迭代器的位置
    unordered_map<int, list<pair<int, string>>::iterator> _um;
};